69 research outputs found

    Reverse Engineering Heterogeneous Applications

    Get PDF
    Nowadays a large majority of software systems are built using various technologies that in turn rely on different languages (e.g. Java, XML, SQL etc.). We call such systems heterogeneous applications (HAs). By contrast, we call software systems that are written in one language homogeneous applications. In HAs the information regarding the structure and the behaviour of the system is spread across various components and languages and the interactions between different application elements could be hidden. In this context applying existing reverse engineering and quality assurance techniques developed for homogeneous applications is not enough. These techniques have been created to measure quality or provide information about one aspect of the system and they cannot grasp the complexity of HAs. In this dissertation we present our approach to support the analysis and evolution of HAs based on: (1) a unified first-class description of HAs and, (2) a meta-model that reifies the concept of horizontal and vertical dependencies between application elements at different levels of abstraction. We implemented our approach in two tools, MooseEE and Carrack. The first is an extension of the Moose platform for software and data analysis and contains our unified meta-model for HAs. The latter is an engine to infer derived dependencies that can support the analysis of associations among the heterogeneous elements composing HA. We validate our approach and tools by case studies on industrial and open-source JEAs which demonstrate how we can handle the complexity of such applications and how we can solve problems deriving from their heterogeneous nature

    On the relationships between domain-based coupling and code clones: an exploratory study

    No full text
    Knowledge of similar code fragments, also known as code clones, is important to many software maintenance activities including bug fixing, refactoring, impact analysis and program comprehension. While a great deal of research has been conducted for finding techniques and implementing tools to identify code clones, little research has been done to analyze the relationships between code clones and other aspects of software. In this paper, we attempt to uncover the relationships between code clones and coupling among domain-level components. We report on a case study of a large-scale open source enterprise system, where we demonstrate the probability of finding code clones among components with domain-based coupling is more than 90%. While such a probabilistic view does not replace a clone detection tool per se, it certainly has the potential to complement the existing tools by providing the probability of having code clones between software components. For example, it can both reduce the clone search space and provide a flexible and language independent way of focusing only on a specific part of the system. It can also provide a higher level of abstraction to look at the cloning relationships among software components

    Clinical validation of full HR-HPV genotyping HPV Selfy assay according to the international guidelines for HPV test requirements for cervical cancer screening on clinician-collected and self-collected samples

    Get PDF
    Background According to international guidelines, Human Papillomavirus (HPV) DNA tests represent a valid alternative to Pap Test for primary cervical cancer screening, provided that they guarantee balanced clinical sensitivity and specificity for cervical intraepithelial neoplasia grade 2 or more (CIN2+) lesions. The study aimed to assess whether HPV Selfy (Ulisse BioMed - Trieste, Italy), a full-genotyping HPV DNA test that detects and differentiates 14 high-risk HPV (HR-HPV) types, meets the criteria for primary cervical cancer screening described in the international guidelines, on clinician-collected as well as on self-collected samples. Methods For each participant woman, consecutively referring to Azienda Sanitaria Universitaria Giuliano Isontina (Trieste, Italy) and CRO-National Cancer Institute (Aviano, Italy) for the cervical cancer screening program, the following samples were tested: (a) a clinician-collected cervical specimen, analyzed with the reference test (Hybrid Capture (R) 2 test, HC2) and HPV Selfy; and (b) a self-collected vaginal sample, analyzed with HPV Selfy. Enrolled women were also asked to fulfill a questionnaire about self-sampling acceptability. As required by guidelines, a non-inferiority test was conducted to compare the clinical performance of the test under evaluation with its reference test. Results HPV Selfy clinical sensitivity and specificity resulted non-inferior to those of HC2. By analysis of a total of 889 cervical liquid-based cytology samples from a screening population, of which 98 were from women with CIN2+, HPV Selfy showed relative sensitivity and specificity for CIN2+ of 0.98 and 1.00 respectively (non-inferiority score test: P = 0.01747 and P = 0.00414, respectively); the test reached adequate intra- and inter-laboratory reproducibility. Moreover, we demonstrated that the performance of HPV Selfy on self-collected vaginal samples was non-inferior to the performance obtained on clinician-collected cervical specimen (0.92 relative sensitivity and 0.97 relative specificity). Finally, through HPV Selfy genotyping, we were able to describe HPV types prevalence in the study population. Conclusions HPV Selfy fulfills all the requirements of the international Meijer's guidelines and has been clinically validated for primary cervical cancer screening purposes. Moreover, HPV Selfy has also been validated for self-sampling according to VALHUDES guidelines. Therefore, at date, HPV Selfy is the only full-genotyping test validated both for screening purposes and for self-sampling. Trial registration ASUGI Trieste n. 16008/2018; CRO Aviano n.17149/201

    Prognostic factors associated with mortality risk and disease progression in 639 critically ill patients with COVID-19 in Europe: Initial report of the international RISC-19-ICU prospective observational cohort

    Get PDF

    Driving the refactoring of Java Enterprise applications by evaluating the distance between application elements

    Get PDF
    Java Enterprise Applications (JEAs) are complex systems composed using various technologies that in turn rely on languages other than Java, such as XML or SQL. Given the complexity of these applications, the need to reverse engineer them in order to support further development becomes critical. In this paper we show how it is possible to split a system into layers and how is possible to interpret the distance between application elements in order to support the refactoring of JEAs. The purpose of this paper is to explore ways to provide suggestions about the refactoring operations to perform on the code by evaluating the distance between layers and elements belonging those layers. We split JEAs into layers by considering the kinds and the purposes of the elements composing the application. We measure distance between elements by using the notion of the shortest path in a graph. Also we present how to enrich the interpretation of the distance value with enterprise pattern detection in order to refine the suggestion about modifications to perform on the code

    Natural Language Checking with Program Checking Tools

    Get PDF
    Written text is an important component in the process of knowledge acquisition and communication. Poorly written text fails to deliver clear ideas to the reader no matter how revolutionary and ground-breaking these ideas are. Providing text with good writing style is essential to transfer ideas smoothly. While we have sophisticated tools to check for stylistic problems in program code, we do not apply the same techniques for written text. In this paper we present TextLint, a rule-based tool to check for common style errors in natural language. TextLint provides a structural model of written text and an extensible rule-based checking mechanism

    Enabling the evolution of J2EE applications through reverse engineering and quality assurance

    No full text
    Enterprise Applications are complex software systems that manipulate much persistent data and interact with the user through a vast and complex user interface. In particular applications written for the Java 2 Platform, Enterprise Edition (J2EE) are composed using various technologies such as Enterprise Java Beans (EJB) or Java Server Pages (JSP) that in turn rely on languages other than Java, such as XML or SQL. In this heterogeneous context applying existing reverse engineering and quality assurance techniques developed for object-oriented systems is not enough. Because those techniques have been created to measure quality or provide information about one aspect of J2EE applications, they cannot properly measure the quality of the entire system. We intend to devise techniques and metrics to measure quality in J2EE applications considering all their aspects and to aid their evolution. Using software visualization we also intend to inspect to structure of J2EE applications and all other aspects that can be investigate through this technique. In order to do that we also need to create a unified meta-model including all elements composing a J2EE application

    MooseJEE: A Moose Extension to Enable the assessment of JEAs

    No full text
    Abstract—Java Enterprise Applications (JEAs) are large systems that integrate multiple technologies and programming languages. With the purpose to support the analysis of JEAs we have developed MooseJEE an extension of the Moose environment capable to model the typical elements of JEAs
    corecore